#ifndef _PORTAIL_H_
#define _PORTAIL_H_


 /**
 * @brief Structure du portail
 * @details le personnage peut se déplacer en passant par le portail 1 pour ressortir par le portail2
 * @var float x y les coordonnées du portail
 * @var int vertical qui vaut 1 si le portail est vertical, 0 si le portail est horizontal
 * @var Portail * portail un lien sur Portail
*/

struct sPortail
{
	float x,y;
	/*sstruct sPortail * portail;*/
} ;
typedef struct sPortail Portail;

/**
 * @brief Initialisation de la structure Portail
 * @detail Le portail doit etre declaré avant l'appel à cette fonction, il est initalisé aux positions x et y
 * @return none
 * @param[in-out] Portail
 * @param[in] float x
 * @param[in] float y
*/
void portailInit(Portail *,float , float );

/**
 * @brief Detruit la structure Portail passée en paramètre
 * @details La memoire allouée pour Portail * sera surpprimée, ainsi que ses autres variables.
 * @param[in-out] Portail
*/
void portailDetruire(Portail *);

/**
 * @brief Retourne la variable x de la structure portail passée en paramètre
 * @param[in] Portail *
 * @return float
*/
float portailGetX(const Portail *);

/**
 * @brief Retourne la variable y de la structure portail passée en paramètre
 * @param[in] Portail *
 * @return float
*/
float portailGetY(const Portail *);

/**
 * @brief Modifie la coordonnée x du Portail passé en paramètre
 * @param[in-out] Portail *
 * @param[in] float
 * @return none
*/
void portailSetX(Portail *, float);

/**
 * @brief Modifie la coordonnée y du Portail passé en paramètre
 * @param[in-out] Portail *
 * @param[in] float
 * @return none
*/
void portailSetY(Portail *,float);

/**
 * @brief Modifie les coordonnées x et y du Portail passé en paramètre
 * @param[in-out] Portail *
 * @param[in] float
 * @param[in] float
 * @return none
*/
void portailSetXY(Portail *,float, float);

/**
 * @brief test si une position est a l'interieur du portail
 *
 *
*/
int portailInteraction(const Portail * , int , int);


#endif
